package com.uva.pgpi.sgcc.beans;

import java.io.Serializable;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import com.uva.pgpi.sgcc.util.DateUtils;


@DatabaseTable(tableName = "historicos")
public class Historico implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5284533094335199815L;
	public static final String ID_HISTORICO = "idHistorico";
	public static final String SOLICITUD = "solicitud";
	public static final String DESCRIPCION = "descripcion";
	public static final String FECHA = "fecha";
	public static final String PREV_HISTORICO = "idPrevHistorico";
	public static final String ESTADO_ANTERIOR = "idEstadoAnterior";
	public static final String ESTADO_ACTUAL = "idEstadoActual";
	
	@DatabaseField(generatedId = true, columnName = ID_HISTORICO)
	private int idHistorico;
	
	@DatabaseField(canBeNull = false, foreign = true, columnName = SOLICITUD)
	private Solicitud solicitud;
	
	@DatabaseField(columnName = DESCRIPCION, canBeNull = false)
	private String descripcion;
	
	@DatabaseField(columnName = FECHA, canBeNull = false)
	private long fecha;
	
	@DatabaseField(canBeNull = false, foreign = true, columnName = ESTADO_ANTERIOR, foreignAutoRefresh = true)
	private Estado estadoAnterior;
	
	@DatabaseField(canBeNull = false, foreign = true, columnName = ESTADO_ACTUAL, foreignAutoRefresh = true)
	private Estado estadoActual;
	
	public Historico() {
	}
	
	public Historico(Solicitud s, Estado ant, Estado actual, String desc, long fecha){
		this.solicitud = s;
		this.descripcion = desc;
		this.fecha = fecha;
		this.estadoAnterior = ant;
		this.estadoActual = actual;
	}
	
	@Override
	public String toString() {
		return this.idHistorico + "- ID Solicitud:\t" + this.solicitud.getIdSolicitud() + "\nDesc:\t\t" + this.descripcion + "\nFecha:\t" + DateUtils.millisToDate(this.fecha);
	}

	public int getIdHistorico() {
		return idHistorico;
	}

	public void setIdHistorico(int idHistorico) {
		this.idHistorico = idHistorico;
	}

	public Solicitud getSolicitud() {
		return solicitud;
	}

	public void setSolicitud(Solicitud solicitud) {
		this.solicitud = solicitud;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public long getFecha() {
		return fecha;
	}

	public void setFecha(long fecha) {
		this.fecha = fecha;
	}
	
	public Estado getEstadoActual() {
		return estadoActual;
	}
	
	public void setEstadoActual(Estado estadoActual) {
		this.estadoActual = estadoActual;
	}
	
	public Estado getEstadoAnterior() {
		return estadoAnterior;
	}
	
	public void setEstadoAnterior(Estado estadoAnterior) {
		this.estadoAnterior = estadoAnterior;
	}

}
